{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "collapsed_sections": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=5><div dir=rtl align=center>\n",
        "<font face=\"IranNastaliq\" size=5>\n",
        "به نام خدا\n",
        "</font>\n",
        "<br>\n",
        "<font size=3>\n",
        "دانشگاه صنعتی شریف - دانشکده مهندسی کامپیوتر\n",
        "</font>\n",
        "<br>\n",
        "<font color=blue size=5>\n",
        "مقدمه‌ای بر یادگیری ماشین\n",
        "</font>\n",
        "\n",
        "<hr/>\n",
        "<font color=red size=6>\n",
        "فصل اول: مروری بر ریاضیات یادگیری ماشین \n",
        "<br>\n",
        "جبرخطی\n",
        "</font>\n",
        "<br>\n",
        "نویسندگان:‌ کوروش مسلمی\n",
        "<hr>\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "RWK755-FnxSb"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>1.جبرخطی</font>\n",
        "<br>\n",
        "در اینجا به یادآوری کوتاهی از جبرخطی در راستای اهداف درس می پردازیم\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "ffDQcr6isJk4"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>1.1.بردارها و فضای برداری</font>\n",
        "<br>\n",
        "به یک n تایی به صورت\n",
        "$X = [x_1, x_2, ⋯ , x_n]$\n",
        "یک \n",
        "<b>بردار سطری</b>\n",
        " گفته می شود و می گوییم X یک بردار \n",
        "$1 × n$\n",
        "است.\n",
        "<br>\n",
        "مشابها یک n تایی به صورت\n",
        "$Y = \\begin{bmatrix}\n",
        "x_1 \\\\\n",
        "x_2 \\\\\n",
        "\\vdots \\\\\n",
        "x_n\n",
        "\\end{bmatrix}\n",
        "$\n",
        "<b>بردار ستونی</b>\n",
        "$n \\times 1$\n",
        "است.\n",
        "<br>\n",
        "در ادامه به عنوان مثال بردارهای ستونی و سطری تولید می کنیم و شیوه دسترسی به المان\n",
        "آن‎ها\n",
        "را نشان می دهیم.\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "O70q6bhSv_lt"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "X = np.arange(3)\n",
        "Y = np.empty([3,1])\n",
        "print(X,X.shape)\n",
        "print(Y,Y.shape)\n",
        "print(X[1],Y[1])"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "L-6KX-pm0eAv",
        "outputId": "b54ea039-3c34-4e14-f77f-5b05697f477a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[0 1 2] (3,)\n",
            "[[0.e+000]\n",
            " [5.e-324]\n",
            " [1.e-323]] (3, 1)\n",
            "1 [5.e-324]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "\n",
        "یک \n",
        "<b>فضای برداری</b>\n",
        " مجموعه ای مانند\n",
        "$S$\n",
        "است که عناصر آن بردار هستند. اعمال جمع و ضرب اسکالری برای این عناصر تعریف می شود که در شرایط ذیل صدق می کنند.(\n",
        "$U$\n",
        "،\n",
        "$V$\n",
        "و \n",
        "$W$\n",
        "عناصر دلخواه\n",
        "$S$\n",
        "،\n",
        "$c$\n",
        "و\n",
        "$d$\n",
        "اسکالر هستند)\n",
        "\n",
        "1. حاصل جمع U + V وجود دارد و متعلق به S است.( S تحت جمع بسته است)\n",
        "\n",
        "2. $cU$\n",
        "    عنصری از S است.(S تحت ضرب اسکالر بسته است.)\n",
        "\n",
        "3. $U+V=V+U$\n",
        "    (ویژگی جابجایی)\n",
        "\n",
        "4. $U+(V+W)=(U+V)+W$\n",
        "    (ویژگی شرکت پذیری)\n",
        "\n",
        "5. عنصری از\n",
        "    V،\n",
        "    که بردار صفر نامیده می شود، با\n",
        "    0\n",
        "  نشان داده می شود، وجود دارد به قسمی که\n",
        "  $U+0=U$\n",
        "\n",
        "6. متناظر هر عنصر U از S عنصری وجود دارد که قرینه U نامیده و با U− نشان داده می شود به قسمی که:\n",
        "$$U+(-U)=0$$\n",
        "\n",
        "7. $ⅽ(U + V) = ⅽU + ⅽV$\n",
        "\n",
        "8. $(ⅽ + ⅾ)U = ⅽU + ⅾU$\n",
        "\n",
        "9. $ⅽ(ⅾU) = (ⅽⅾ)U$\n",
        "\n",
        "10. $۱U = U$\n",
        "\n",
        "فضاهای برداری می توانند شامل فضاهای برداری دیگری نیز باشند. اگر\n",
        "$V$\n",
        "یک فضای برداری باشد آنگاه\n",
        "$S \\subseteq V$\n",
        "یک \n",
        "<b>زیرفضای</b>\n",
        " V نامیده می شود اگر:\n",
        "\n",
        "1. $0 \\in S$\n",
        "2. S تحت جمع بسته باشد:\n",
        "$x,y \\in S ⇒ x+y \\in S$\n",
        "3. S تحت ضرب اسکالر بسته باشد:\n",
        "$x \\in S, α \\in \\mathbf{R} ⇒ αS \\in S$\n",
        "\n",
        "به عنوان مثال یک خط که از مبدا می گذرد زیر فضای \n",
        "$R^2$\n",
        "است.\n",
        "\n",
        "فرض کنیم\n",
        "$V_1,V_2,\\cdots,V_m$\n",
        "بردارهایی در فضای برداری S باشند. گوییم\n",
        "$V$،\n",
        "برداری در\n",
        "$S$،\n",
        "یک \n",
        "<b>ترکیب خطی</b>\n",
        " از\n",
        "$V_1,V_2,\\cdots,V_m$\n",
        "است هرگاه اسکالرهایی چون\n",
        "$c_1,c_2,\\cdots,c_m$\n",
        "موجود باشند به قسمی که V را بتوان چنین نوشت:\n",
        "$$V=c_1V_1+c_2V_2+\\cdots+c_mV_m$$\n",
        "\n",
        "مجموعه بردارهای\n",
        "$V_1,V_2,\\cdots,V_m$\n",
        "از یک فضای برداری را وقتی یک \n",
        "<b>مولد</b>\n",
        " این فضا می نامیم که هر بردار فضا ترکیبی از این بردارها باشد. یک مجموعه مولد از بردارها به یک معنی فضای برداری مربوطه را معرفی می کند زیر هر بردار آن فضا را می توان از این بردار ها بدست آورد.\n",
        "\n",
        "مجموعه بردارهای\n",
        "${V_1,V_2,\\cdots,V_n}$\n",
        "را \n",
        "<b>مستقل خطی</b>\n",
        " گوییم هرگاه از معادله\n",
        "$$c_1V_1+c_2V_2+\\cdots+c_nV_n=0\\qquad(1)$$\n",
        "نتیجه شود که\n",
        "$$c_1=c_2=\\cdots=c_n=0$$\n",
        "چنانچه حداقل یک\n",
        "$c_i\\neq0$\n",
        "وجود داشته باشد که معادله (1) برقرار باشد گوییم مجموعه بردارهای\n",
        "${V_1,V_2,\\cdots,V_n}$\n",
        "وابسته خطی هستند.\n",
        "\n",
        "مجموعه ای متناهی از بردارها مانند\n",
        "$\\lbrace V_1,\\cdots,V_m \\rbrace$\n",
        "را یک \n",
        "<b>پایه</b>\n",
        " فضای برداری\n",
        "$S$\n",
        "نامیم هرگاه این مجموعه مولد\n",
        "$S$\n",
        "و مستقل خطی باشد.\n",
        "\n",
        "<b>مثال)</b>\n",
        "آیا بردارهای\n",
        "$\\lbrace (1,-1,1),(-1,-1,1),(0,1,1) \\rbrace$\n",
        "برای\n",
        "$\\mathbf{R}^3$\n",
        "پایه هستند؟\n",
        "\n",
        "\n",
        "<b>حل)</b>\n",
        "\n",
        "اسکالرهای\n",
        "$c_1,c_2,c_3$\n",
        "باید وجود داشته باشند که\n",
        "$$c_1(1,-1,1)+c_2(-1,-1,1)+c_3(0,1,1)=(x_1,x_2,x_3)$$\n",
        "\\begin{equation*}\n",
        "\\Rightarrow\n",
        "\\begin{cases}\n",
        "c_1-c_2=x_1 \\\\\n",
        "-c_1-c_2+c_3=x_2 \\\\\n",
        "c_1+c_2+c_3=x_3\n",
        "\\end{cases}\n",
        "\\Rightarrow\n",
        "\\begin{cases}\n",
        "c_1=\\frac{2x_1-x_2+x_3}{4} \\\\\n",
        "c_2=\\frac{-2x_1-x_2+x_3}{4} \\\\\n",
        "c_3=\\frac{x_2+x_3}{2}\n",
        "\\end{cases}\n",
        "\\end{equation*}\n",
        "اکنون مستقل خطی بودن را بررسی می کنیم\n",
        "$$b_1(1,-1,1)+b_2(-1,-1,1)+b_3(0,1,1)=0$$\n",
        "\\begin{equation*}\n",
        "\\Rightarrow\n",
        "\\begin{cases}\n",
        "b_1-b_2=0 \\\\\n",
        "-b_1-b_2+b_3=0 \\\\\n",
        "b_1+b_2+b_3=0\n",
        "\\end{cases}\n",
        "\\qquad\\Rightarrow\n",
        "b_1=b_2=b_3=0\n",
        "\\end{equation*}\n",
        "پس این مجموعه بردارها پایه\n",
        "$\\mathbf{R}^3$\n",
        "هستند.\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "1BtEtjwQ7wg6"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>2.1.ماتریس‎ها</font>\n",
        "<br>\n",
        "یک ماتریس مجموعه ای از بردارها است مثلا اگر\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1 & 2 & 9\\\\\n",
        "0 & -1 & 6\\\\\n",
        "1 & 2 & 7\\\\\n",
        "\\end{bmatrix}_{3\\times 3},\\qquad\n",
        "B=\n",
        "\\begin{bmatrix}\n",
        "1 & 1\\\\\n",
        "1 & 1\\\\\n",
        "\\end{bmatrix}_{2\\times 2}\n",
        "$$\n",
        "$$\n",
        "C=\n",
        "\\begin{bmatrix}\n",
        "1 & 2 & 3\\\\\n",
        "4 & 5 & 6\\\\\n",
        "\\end{bmatrix}_{2\\times 3},\\qquad\n",
        "D=\n",
        "\\begin{bmatrix}\n",
        "1 & 9\\\\\n",
        "-1 & 0\\\\\n",
        "2 & 6\\\\\n",
        "\\end{bmatrix}_{3\\times 2}\n",
        "$$\n",
        "آنگاه:\n",
        "\t\n",
        "A ماتریسی است که 3 سطر و 3 ستون دارد\n",
        "\n",
        "B ماتریسی است که 2 سطر و 2 ستون دارد\n",
        "\n",
        "C ماتریسی است که 2 سطر و 3 ستون دارد\n",
        "\n",
        "D ماتریسی است که 3 سطر و 2 ستون دارد\n",
        "\n",
        "<br>\n",
        "در ادامه یک نمونه ماتریس تولید می کنیم.\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "ZdH-cK3VwkLQ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "A = np.arange(6).reshape(3, 2)\n",
        "A"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "fPFYdQs74BaH",
        "outputId": "59732ca0-9a2a-4d85-b0f5-491d72cfd236"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[0, 1],\n",
              "       [2, 3],\n",
              "       [4, 5]])"
            ]
          },
          "metadata": {},
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "\n",
        "<b>ترانهاده</b>\n",
        " ماتریس A را با\n",
        "$A^T$\n",
        "نمایش می دهیم که از جابجایی سطرها و ستون‎های آن ایجاد می شود پس اگر\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1&3&6 \\\\\n",
        "7&2&-4 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "آنگاه\n",
        "$$\n",
        "A^T=\n",
        "\\begin{bmatrix}\n",
        "1&7 \\\\\n",
        "3&2 \\\\\n",
        "6&-4 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "در ادامه برابری ترانهاده یک ماتریس متقارن با خودش را بررسی می کنیم\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "S_xNi8gk4zfv"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "A = np.array([[1, 2, 3], [2, 0, 4], [3, 4, 5]])\n",
        "A == A.T"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iCuQMAVb5P-E",
        "outputId": "2bf44598-9497-4e7c-e296-4316027ad577"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[ True,  True,  True],\n",
              "       [ True,  True,  True],\n",
              "       [ True,  True,  True]])"
            ]
          },
          "metadata": {},
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "\n",
        "فرض کنیم A یک ماتریس\n",
        "$m \\times n$\n",
        "باشد، سطرهای A را می توانیم به مثابه بردار های سطری\n",
        "$r_1,r_2,\\cdots,r_m$\n",
        "و ستون‎های آن را به مثابه بردارهای ستونی\n",
        "$c_1,c_2,\\cdots,c_n$\n",
        "بینگاریم. هر بردار سطری شامل n مولفه و هر بردار ستونی شامل m مولفه می باشد.\n",
        "بردارهای سطری زیرفضایی از\n",
        "$\\mathbf{R}^n$\n",
        "را گسترش می دهند که فضای سطری A نامیده می شود.\n",
        "\n",
        "<br>\n",
        "\n",
        "<b>مثال)</b>\n",
        "ماتریس زیر را در نظر می گیریم\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1 & 4\\\\\n",
        "5 & 9\\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "بردارهای سطری A عبارتند از\n",
        "$$r_1=(1,4),\\qquad r_2=(5,9)$$\n",
        "این بردارها زیرفضایی از\n",
        "$\\mathbf{R}^2$\n",
        "تولید می کنند که \n",
        "<b>فضای سطری</b>\n",
        " A نامیده می شود. از طرفی بردارهای ستونی A عبارتند از\n",
        "$$\n",
        "c_1=\n",
        "\\begin{bmatrix}\n",
        "1\\\\\n",
        "5\\\\\n",
        "\\end{bmatrix},\\qquad\n",
        "c_2=\n",
        "\\begin{bmatrix}\n",
        "4\\\\\n",
        "9\\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "این بردارها زیرفضایی از\n",
        "$\\mathbf{R}^2$\n",
        "تولید می کنند که\n",
        "<b> فضای ستونی</b>\n",
        " A نامیده می شود.\n",
        "\n",
        "<br>\n",
        "\n",
        "<b>قضیه:</b>\n",
        "فضای سطری و ستونی ماتریس A دارای یک بعد هستند.\n",
        "\n",
        "<br>\n",
        "\n",
        "<b>قضیه:</b>\n",
        "بعد فضای سطری(ستونی) ماتریس A را \n",
        "<b>رتبه</b>\n",
        " A می نامیم. رتبه A را با نماد\n",
        "$Rank(A)$\n",
        "نشان می دهیم.\n",
        "<br>\n",
        "\n",
        "<b>\n",
        "مثال)\n",
        "</b>\n",
        "رتبه ماتریس زیر را پیدا کنید.\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1&2&3\\\\\n",
        "0&1&2\\\\\n",
        "2&5&8\\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "<b>حل)</b>\n",
        "با بررسی در می یابیم که سطر سوم این ماتریس ترکیب خطی از دو سطر آن است:\n",
        "$$(2,5,8)=2(1,2,3)+(0,1,2)$$\n",
        "در این صورت سه سطر این ماتریس وابسته ی خطی هستند. در نتیجه رتبه این ماتریس کوچک تر از 3 است. چون (1,2,3) مضرب اسکالری از (0,1,2) نیست، این دو بردار مستقل خطی هستند. این دو بردار تشکیل یک پایه برای فضای سطری A می دهند. از این رو\n",
        "$Rank(A)=2$\n",
        "\n",
        "\n",
        "برای هر ماتریس\n",
        "$m \\times n$\n",
        "دو زیر فضای مهم به صورت زیر وجود دارند\n",
        "\\begin{align*} \n",
        "R(A) &= \\{  B \\in \\mathbf{R}^m \\: | \\: B=AX, X \\in \\mathbf{R}^n \\} \\qquad  &\\text{A فضای برد} \\\\\n",
        "N(A) &=\\{ X \\in \\mathbf{R}^n \\: | \\: AX=0  \\} \\qquad &\\text{A فضای پوچ یا کرنل} \n",
        "\\end{align*}\n",
        "توجه کنید بعد\n",
        "$N(A)$\n",
        "را با\n",
        "$dim(N(A))$\n",
        "نشان می دهیم.\n",
        "\n",
        "<b>قضیه:</b>\n",
        "فرض کنید A ماتریس\n",
        "$m \\times n$\n",
        "باشد آنگاه\n",
        "$$Rank(A)+dim(N(A))=n$$\n",
        "\n",
        "<b>تذکر:</b>\n",
        "رتبه A همان بعد فضای برد A می باشد.\n",
        "\n",
        "<b>مثال:</b>\n",
        "فضای برد و پوچ ماتریس زیر را محاسبه کنید.\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1&2&-1\\\\\n",
        "2&4&-2\\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "برای محاسبه فضای پوچ A قرار می دهیم:\n",
        "$$\n",
        "AX=0\n",
        "\\Rightarrow\n",
        "\\begin{bmatrix}\n",
        "1&2&-1\\\\\n",
        "2&4&-2\\\\\n",
        "\\end{bmatrix}\n",
        "\\begin{bmatrix}\n",
        "x_1\\\\\n",
        "x_2\\\\\n",
        "x_3\\\\\n",
        "\\end{bmatrix}\n",
        "=\n",
        "\\begin{bmatrix}\n",
        "0\\\\\n",
        "0\\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\\begin{equation*}\n",
        "\\begin{cases}\n",
        "x_1+2x_2-x_3=0 \\\\\n",
        "2x_1+4x_2-2x_3=0\n",
        "\\end{cases}\n",
        "\\longrightarrow\n",
        "x_1+2x_2-x_3=0\n",
        "\\end{equation*}\n",
        "اگر\n",
        "$x_3=\\alpha$\n",
        "و\n",
        "$x_2=\\beta$\n",
        "آنگاه \n",
        "$x_1=-2 \\beta + \\alpha$\n",
        "پس\n",
        "$$\n",
        "X=\n",
        "\\begin{bmatrix}\n",
        "x_1\\\\\n",
        "x_2\\\\\n",
        "x_3\\\\\n",
        "\\end{bmatrix}=\n",
        "\\begin{bmatrix}\n",
        "-2 \\beta + \\alpha \\\\\n",
        "\\beta \\\\\n",
        "\\alpha \\\\\n",
        "\\end{bmatrix}=\\alpha\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}+\\beta\n",
        "\\begin{bmatrix}\n",
        "-2 \\\\\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "بنابراین \n",
        "$N(A)$\n",
        "شامل تمام بردار هایی به شکل فوق است که\n",
        "$\\alpha,\\beta \\in \\mathbf{R}$\n",
        "پس\n",
        "$$\n",
        "N(A)= \\left\\lbrace \\alpha\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}+\\beta\n",
        "\\begin{bmatrix}\n",
        "-2 \\\\\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "\\end{bmatrix} \\: \\mid \\:\n",
        "\\alpha , \\beta \\in \\mathbf{R}\n",
        " \\right\\rbrace \n",
        "$$\n",
        " لذا مجموعه\n",
        "$ \\left\\lbrace  \n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix},\n",
        "\\begin{bmatrix}\n",
        "-2 \\\\\n",
        "1 \\\\\n",
        "0 \\\\\n",
        "\\end{bmatrix}\n",
        " \\right\\rbrace $\n",
        "پایه ای برای این فضا و در نتیجه\n",
        "$dim(N(A))=2$\n",
        "از اینرو قضیه قبل نتیجه می دهد\n",
        "$$Rank(A)=n-dim(N(A))=3-2=1$$\n",
        "از طرفی برای فضای برد داریم:\n",
        "  \\begin{align*}\n",
        "    b &= AX = \n",
        "\\begin{bmatrix}\n",
        "x_1+2x_2-x_3 \\\\\n",
        "2x_1+4x_2-2x_3 \\\\\n",
        "\\end{bmatrix}=\n",
        "x_1\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix}+2x_2\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix}-x_3\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix} \\\\\n",
        "    &= (x_1+2x_2-x_3)\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix}=\\gamma\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix}, \\gamma \\in \\mathbf{R}\n",
        "  \\end{align*}\n",
        "\n",
        "بنابراین\n",
        "$$\n",
        "R(A)= \\left\\lbrace \\gamma\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "2 \\\\\n",
        "\\end{bmatrix} \\: \\mid \\:\n",
        "\\gamma \\in \\mathbf{R}\n",
        " \\right\\rbrace \n",
        " $$\n",
        " فضای برد A است. واضح است که\n",
        " $dim(R(A))=1$\n",
        "لذا از این هم می توان متوجه شد که\n",
        "$$Rank(A)=dim(R(A))=1$$  \n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "1Jo7xjvsGzlH"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "\n",
        "<b>دترمینان</b>\n",
        " ماتریس\n",
        "$2 \\times 2$،\n",
        "A\n",
        "را با\n",
        "$det(A)$\n",
        "نشان داده و به صورت زیر تعریف می کنیم:\n",
        "$$det \\left( \n",
        "\\begin{bmatrix}\n",
        "a_{11}&a_{12} \\\\\n",
        "a_{21}&a_{22} \\\\\n",
        "\\end{bmatrix} \\right) =\n",
        "a_{11} a_{22} - a_{12} a_{21}\n",
        " $$\n",
        "\n",
        "<b>کهاد</b>\n",
        " درایه\n",
        "$a_{ij}$\n",
        "را با\n",
        "$M_{ij}$\n",
        "نشان می دهیم و عبارت است از دترمینان ماتریس حاصل از حذف ماتریس\n",
        "ردیف i\n",
        "ام و ستون j\n",
        "ام ماتریس A\n",
        ".\n",
        "\n",
        "<b>همسازه</b>\n",
        " درایه\n",
        "$a_{ij}$\n",
        "را با\n",
        "$C_{ij}$\n",
        "نشان می دهیم و به صورت زیر تعریف می کنیم:\n",
        "$$C_{ij} = (-1)^{i+j} M_{ij}$$ \n",
        "\n",
        "توجه کنید که کهاد و همسازه یک درایه حداکثر تفاوتشان در یک علامت است.\n",
        "$$C_{ij} = + M_{ij} \\; \\text{یا} \\; -M_{ij}$$\n",
        "\n",
        " <b>مثال)</b>\n",
        " کهاد و همسازه درایه های \n",
        "$a_{12}, a_{33}$\n",
        "را برای ماتریس زیر بدست آورید\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "2&-1&5 \\\\\n",
        "0&3&4 \\\\\n",
        "2&2&-2 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "<b>حل:</b>\n",
        "با بکارگیری تعریف اخیر داریم\n",
        "  \\begin{align*}\n",
        "    M_{12} &= \n",
        "det \\left( \n",
        "\\begin{bmatrix}\n",
        "0&4 \\\\\n",
        "2&-2 \\\\\n",
        "\\end{bmatrix} \\right) = 0 \\times (-2) - (4 \\times 2) = -8 \\\\\n",
        "    C_{12} &= (-1)^{1+2} M_{12} = -1 \\times -8 = 8 \\\\\n",
        "    M_{33}&= det \\left( \n",
        "\\begin{bmatrix}\n",
        "2&-1 \\\\\n",
        "0&3 \\\\\n",
        "\\end{bmatrix} \\right) = 2 \\times 3 - (-1) \\times 0 = 6 \\\\\n",
        "    C_{33}&= (-1)^{3+3} M_{33} = 1 \\times 6 = 6 \\\\\n",
        "  \\end{align*}\n",
        "\n",
        "  دترمینان ماتریس مربعی A برابر است با مجموع حاصل ضرب درایه های هر سطر یا هر ستون در همسازه مربوط به آن درایه. بنابراین دترمینان ماتریس A برحسب  بسط سطر i\n",
        "ام برابر است با\n",
        "$$det(A)=a_{i1}C_{i1}+a_{i2}C_{i2}+\\cdots+a_{in}C_{in}$$  \n",
        "\n",
        "<b>مثال)</b>\n",
        "مطلوب است محاسبه دترمینان ماتریس A برحسب\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "1&0&3 \\\\\n",
        "13&-2&5 \\\\\n",
        "-1&1&0 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "سطر سوم:\n",
        "$$(-1)^4 \\times (-1) \\times\n",
        "det \\left( \n",
        "\\begin{bmatrix}\n",
        "0&3 \\\\\n",
        "-2&5 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^5 \\times 1 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "1&3 \\\\\n",
        "13&5 \\\\\n",
        "\\end{bmatrix} \\right) = 28\n",
        "$$\n",
        "\n",
        "سطر دوم:\n",
        "$$(-1)^3 \\times 13 \\times\n",
        "det \\left( \\begin{bmatrix}\n",
        "0&3 \\\\\n",
        "1&0 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^4 \\times -2 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "1&3 \\\\\n",
        "-1&0 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^5 \\times 5 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "1&0 \\\\\n",
        "-1&1 \\\\\n",
        "\\end{bmatrix} \\right) = 28\n",
        "$$\n",
        "ستون اول:\n",
        "$$(-1)^2 \\times 1 \\times\n",
        "det \\left( \\begin{bmatrix}\n",
        "-2&5 \\\\\n",
        "1&0 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^3 \\times 13 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "0&3 \\\\\n",
        "1&0 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^4 \\times -1 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "0&3 \\\\\n",
        "-2&5 \\\\\n",
        "\\end{bmatrix} \\right) = 28\n",
        "$$\n",
        "ستون دوم:\n",
        "$$(-1)^3 \\times 0 + (-1)^4 \\times -2 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "1&3 \\\\\n",
        "-1&0 \\\\\n",
        "\\end{bmatrix} \\right) + (-1)^5 \\times 1 \\times \n",
        "det \\left( \\begin{bmatrix}\n",
        "1&3 \\\\\n",
        "13&5 \\\\\n",
        "\\end{bmatrix} \\right) = 28\n",
        "$$\n",
        "\n",
        "در ادامه چند خاصیت از دترمینان می بینیم. می توانید برای تمرین آن ها را اثبات کنید.\n",
        "\n",
        "1. $det(I)=1$\n",
        "2. $det(A^T)=det(A)$\n",
        "3. $det(AB)=det(A)det(B)$\n",
        "4. $det(A^{-1}) = det(A)^{-1}$\n",
        "5. $det(\\alpha A) = α^n det(A)$\n",
        "\n",
        "<b>اثر</b>\n",
        " یک ماتریس که با نماد \n",
        "$trace(A)$\n",
        "نمایش داده می شود، به صورت زیر است\n",
        "$$trace(A)=\\sum^{n}_{i=1} a_{ii}$$\n",
        "\n",
        "<b>تمرین)</b>\n",
        "خواص زیر را برای اثر ماتریس نشان دهید.\n",
        "\n",
        "1. trace(A+B) = trace(A) + trace(B)\n",
        "2. trace(α A) = α trace(A)\n",
        "3. trace($A^T$) = trace(A)\n",
        "4. trace(ABCD) = trace(BCDA) = trace(CDAB) = trace(ِDABC)\n",
        "\n",
        "<br>\n",
        "\n",
        "اگر A یک ماتریس \n",
        "$n \\times n$\n",
        "باشد، آنگاه عبارات زیر معادل هستند:\n",
        "\n",
        "1. \n",
        "ماتریس A نامنفرد(ناتکین، معکوس پذیر) است\n",
        "2. \n",
        "دترمینان ماتریس A مخالف صفر است\n",
        "3. \n",
        "دستگاه\n",
        "$AX=B$\n",
        "به ازای هر b جواب منحصر به فرد دارد\n",
        "4. \n",
        "$Rank(A)=n$\n",
        "5. \n",
        "$AX=0$\n",
        "جواب بدیهی صفر دارد\n",
        "6. \n",
        "ماتریس A با ماتریس\n",
        "$I_n$\n",
        "هم ارز سطری است\n",
        "7. \n",
        "ستون‎های ماتریس A مستقل خطی هستند\n",
        "8. \n",
        "سطر‎های ماتریس A مستقل خطی هستند\n",
        "9. \n",
        "$dim(N(A))=0$\n",
        "10. \n",
        "مقادیر ویژه ماتریس A مخالف صفر هستند\n",
        "11. \n",
        "یکتا جواب دستگاه\n",
        "$X = A^{-1}B$\n",
        "است.\n",
        "12. \n",
        "$dim(R(A))=n$\n",
        "\n",
        "\n",
        "ماتریس مربعی A را \n",
        "**مثبت معین**\n",
        " گوییم هرگاه برای هر بردار \n",
        "$X\\neq 0$\n",
        "داشته باشیم :\n",
        "$$X^T(\\frac{A+A^T}{2})X>0$$\n",
        "\n",
        "\n",
        "**مثال)**\n",
        "نشان دهید ماتریس داده شده مثبت معین است.\n",
        "$A=\\begin{bmatrix}\n",
        "1&1\\\\0&1\n",
        "\\end{bmatrix}$\n",
        "\n",
        "**حل)**\n",
        "باید نشان دهیم برای هر \n",
        "$X=\\begin{bmatrix}\n",
        "x_1\\\\x_2\n",
        "\\end{bmatrix}\\neq0$\n",
        "داریم :\n",
        "$X^T(\\frac{A+A^T}{2})X>0$\n",
        "\n",
        "ابتدا توجه داشته باشید که \n",
        "$$\\frac{1}{2}(A+A^T)=\\frac{1}{2}\\left(\\begin{bmatrix}\n",
        "1&1\\\\0&1\n",
        "\\end{bmatrix}+\\begin{bmatrix}\n",
        "1&0\\\\1&1\n",
        "\\end{bmatrix}\\right)=\\frac{1}{2}\\begin{bmatrix}\n",
        "2&1\\\\1&2\n",
        "\\end{bmatrix}=\\begin{bmatrix}\n",
        "1 &\\frac{1}{2}\\\\ \\frac{1}{2}&1\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "از طرفی داریم:\n",
        "$$\n",
        "X^T(\\frac{A+A^T}{2})X=[x_1 \\; x_2 ]\n",
        "\\begin{bmatrix}\n",
        "1&\\frac{1}{2}\\\\\n",
        "\\frac{1}{2}&1\n",
        "\\end{bmatrix}\n",
        "\\begin{bmatrix}\n",
        "x_1\\\\x_2\n",
        "\\end{bmatrix}=[x_1 \\; x_2]\n",
        "\\begin{bmatrix}\n",
        "x_1+\\frac{1}{2}x_2\\\\\n",
        "\\frac{1}{2}x_1+x_2\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "$$=x_1^2+x_1x_2+x_2^2=\\frac{1}{2}(x_1^2+x_2^2+(x_1+x_2)^2)>0$$\n",
        "لذا ماتریس A مثبت معین است.\n",
        "\n",
        "\n",
        "**توجه)**\n",
        "در بیشتر موارد کاربردی برای مثبت معین بودن، ماتریس A متقارن است و لذا تعریف به صورت زیر خلاصه می‌شود.\n",
        "$$A^T=A \\Longrightarrow X^T(\\frac{A+A^T}{2})X=X^T(\\frac{A+A}{2})X=X^TAX > 0$$\n",
        "بنابراین ماتریس متقارن A را مثبت معین گوییم هرگاه برای هر \n",
        "$X\\neq0$\n",
        "داشته باشیم : \n",
        "$$X^TAX>0$$\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "DQCQBxSnwkaL"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>3.1.تنسورها</font>\n",
        "<br>\n",
        "تنسورها تعمیمی از اسکالرها، بردارها و ماتریس ها برای ابعاد بالاتر از 2 هستند. \n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "Ec3_yEmj2Qu_"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "\n",
        "<div>\n",
        "<center>\n",
        "<img src=\"https://www.kdnuggets.com/wp-content/uploads/scalar-vector-matrix-tensor.jpg\" width=\"500\">\n",
        "</center>\n",
        "</div>\n"
      ],
      "metadata": {
        "id": "OfAI1t6MC5XN"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "فرض کنید عکسی سیاه و سفید (grayscale) در اختیار دارید در این صورت می توانید آن \n",
        "را در یک ماتریس ذخیره کنید. به این صورت که به هر پیکسل مقداری بین 0 تا 255 اختصاص دهید و در یک خانه ماتریس ذخیره کنید. در یادگیری ماشین و یادگیری عمیق عموما با داده‌ها با ابعاد بالا سر و کار داریم. به طور مثال برای ذخیره سازی یک عکس رنگی در فضای رنگی RGB نیاز به یک تنسور 3 بعدی داریم.همچنین برای نگهداری مجموعه ای از عکس‎ها به تنسور 4 بعدی نیاز داریم.\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "kxIwzwMSwkhb"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "\n",
        "<div>\n",
        "<center>\n",
        "<img src=\"https://image.slidesharecdn.com/tensordecomposition-170301235239/95/a-brief-survey-of-tensors-5-638.jpg\" width=\"500\">\n",
        "</center>\n",
        "</div>\n"
      ],
      "metadata": {
        "id": "CiQ6uqeZEnl2"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "در ادامه یک تنسور سه بعدی تولید می کنیم\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "-tP7FngIwkj4"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "np.arange(24).reshape(2, 3, 4)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pBvWQSYmF7sM",
        "outputId": "747a9ea3-fa63-45f3-9f1f-a69123ce6911"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[[ 0,  1,  2,  3],\n",
              "        [ 4,  5,  6,  7],\n",
              "        [ 8,  9, 10, 11]],\n",
              "\n",
              "       [[12, 13, 14, 15],\n",
              "        [16, 17, 18, 19],\n",
              "        [20, 21, 22, 23]]])"
            ]
          },
          "metadata": {},
          "execution_count": 11
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>4.1.عملیات روی تنسور‎ها</font>\n",
        "<br>\n",
        "ابتدا ضرب درایه‎ای (Hadamard product)\n",
        "را معرفی می کنیم. فرض کنید\n",
        "$\\mathbf{A}, \\mathbf{B} \\in \\mathbb{R}^{m \\times n}$\n",
        "در این صورت داریم:\n",
        "$$\n",
        "\\begin{split}\\mathbf{A} \\odot \\mathbf{B} =\n",
        "\\begin{bmatrix}\n",
        "    a_{11}  b_{11} & a_{12}  b_{12} & \\dots  & a_{1n}  b_{1n} \\\\\n",
        "    a_{21}  b_{21} & a_{22}  b_{22} & \\dots  & a_{2n}  b_{2n} \\\\\n",
        "    \\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
        "    a_{m1}  b_{m1} & a_{m2}  b_{m2} & \\dots  & a_{mn}  b_{mn}\n",
        "\\end{bmatrix}.\\end{split}\n",
        "$$\n",
        "\n",
        "مثال:\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "HtrxhvV7JnUs"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "A = np.arange(6, dtype=np.float32).reshape(2, 3)\n",
        "B = A.copy()  # Assign a copy of `A` to `B` by allocating new memory\n",
        "A * B"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "r5u6aKrELBd_",
        "outputId": "b67c7393-ed6d-4224-d25b-3100cfab244a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[ 0.,  1.,  4.],\n",
              "       [ 9., 16., 25.]], dtype=float32)"
            ]
          },
          "metadata": {},
          "execution_count": 13
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "یکی از اساسی ترین عملیات‎ها در جبرخطی ضرب نقطه ای (Dot Product)\n",
        "یا ضرب داخلی (Inner Product)\n",
        "می باشد. فرض کنید\n",
        "$\\mathbf{x}, \\mathbf{y} \\in \\mathbb{R}^d$\n",
        "در این صورت تعریف می کنیم:\n",
        "$$\\langle \\mathbf{x}, \\mathbf{y} \\rangle = \\mathbf{x}^\\top \\mathbf{y} = \\sum_{i=1}^{d} x_i y_i$$\n",
        "\n",
        "به عبارت دیگر ضرب داخلی روی فضای برداری V تابعی است به فرم\n",
        "$⟨ .,. ⟩ : \\mathbf{V \\times V} → \\mathbf{R}$\n",
        "که در شرایط زیر صدق می کند:\n",
        "1. $⟨ X,X ⟩ ≥ 0$\n",
        "2. $⟨ X,X ⟩=0 ⇔ X=0$\n",
        "3. $⟨ X+Y,Z ⟩ = ⟨ X,Z ⟩ + ⟨ Y,Z ⟩$\n",
        "4. $⟨ α X,Z ⟩ = α ⟨ X,Z ⟩$\n",
        "5. $⟨ X,Y ⟩ = ⟨ Y,X ⟩$\n",
        "\n",
        "همانطور که در ادامه می بینیم V یک فضای متریک محسوب می شود.\n",
        "\n",
        "یکی از کاربردهای ضرب نقطه ای محاسبه میانگین وزن دار است. فرض کنید\n",
        "$\\mathbf{x} \\in \\mathbb{R}^n,\\; \\mathbf{w} \\in \\mathbb{R}^n,\\; \\sum_{i=1}^{n} {w_i} = 1$ که x بردار مقادیر و w بردار وزن‎های نامنفی مقادیر است در این صورت\n",
        "$\\mathbf{x}^\\top \\mathbf{w}$\n",
        "همان میانگین وزن دار است.\n",
        "\n",
        "مثال:\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "vsEak2-VJnoD"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "x = np.arange(3, dtype=np.float32)\n",
        "w = np.array([0.5,0.2,0.3])\n",
        "print(np.dot(x, w)) # method 1\n",
        "print(np.sum(x * w)) # method 2"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "f-9X1tR8Laxc",
        "outputId": "b945ef28-df39-41ec-bcd7-e5cfed56bbbb"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "0.8\n",
            "0.8\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "در ادامه به ضرب ماتریس-بردار می پردازیم. فرض کنید A و x به ترتیب ماتریس\n",
        "$m \\times n$\n",
        "و بردار n بعدی هستند.\n",
        "قرار می دهیم:\n",
        "$$\n",
        "\\begin{split}\\mathbf{A}=\n",
        "\\begin{bmatrix}\n",
        "\\mathbf{a}^\\top_{1} \\\\\n",
        "\\mathbf{a}^\\top_{2} \\\\\n",
        "\\vdots \\\\\n",
        "\\mathbf{a}^\\top_m \\\\\n",
        "\\end{bmatrix},\\end{split}\n",
        "$$\n",
        "به طوری که\n",
        "$\\mathbf{a}^\\top_{i} \\in \\mathbb{R}^n$\n",
        "بردار سطری نشان دهنده سطر i ام ماتریس A است. سپس ضرب ماتریس-بردار \n",
        "$Ax$\n",
        "را به کمک ضرب نقطه ای\n",
        "$\\mathbf{a}^\\top_i \\mathbf{x}$\n",
        "به صورت زیر تعریف می کنیم:\n",
        "$$\n",
        "\\begin{split}\\mathbf{A}\\mathbf{x}\n",
        "= \\begin{bmatrix}\n",
        "\\mathbf{a}^\\top_{1} \\\\\n",
        "\\mathbf{a}^\\top_{2} \\\\\n",
        "\\vdots \\\\\n",
        "\\mathbf{a}^\\top_m \\\\\n",
        "\\end{bmatrix}\\mathbf{x}\n",
        "= \\begin{bmatrix}\n",
        " \\mathbf{a}^\\top_{1} \\mathbf{x}  \\\\\n",
        " \\mathbf{a}^\\top_{2} \\mathbf{x} \\\\\n",
        "\\vdots\\\\\n",
        " \\mathbf{a}^\\top_{m} \\mathbf{x}\\\\\n",
        "\\end{bmatrix}.\\end{split}\n",
        "$$\n",
        "<br>\n",
        "برای شهود بیشتر می توانید به این ضرب به چشم یک تبدیل از فضای\n",
        "$\\mathbf{R}^n$\n",
        "به\n",
        "$\\mathbf{R}^m$\n",
        "نگاه کنید. مثلا اگر\n",
        "$m=n=2$\n",
        "باشد و قرار دهیم\n",
        "$$A = \\begin{bmatrix}\n",
        "cos(30) & -sin(30) \\\\\n",
        "sin(30) & cos(30) \\\\\n",
        "\\end{bmatrix},\\; X=\\begin{bmatrix}\n",
        "2 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "<br>\n",
        "در این صورت بردار\n",
        "$X^{'} = AX$\n",
        "در صفحه مختصات دو بعدی 30 درجه دوران یافته بردار X در جهت پادساعتگرد است.\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "gqG3qE1gJnqi"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![givens30.png]()"
      ],
      "metadata": {
        "id": "5CoC21BQWjtL"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "در ادامه انجام این ضرب در پایتون را میبینیم:\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "EEODQxmoJnxS"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "A.shape, x.shape, A@x"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "U4OupAsfXnoh",
        "outputId": "723a0669-d29a-4f56-e3ec-2d17180127df"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "((2, 3), (3,), array([ 5., 14.], dtype=float32))"
            ]
          },
          "metadata": {},
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "اکنون آماده ایم تا ضرب ماتریس-ماتریس را معرفی کنیم. ابتدا قرار دهیم:\n",
        "<br>\n",
        "<br>\n",
        "$$\n",
        "\\begin{split}\\mathbf{A}=\\begin{bmatrix}\n",
        " a_{11} & a_{12} & \\cdots & a_{1k} \\\\\n",
        " a_{21} & a_{22} & \\cdots & a_{2k} \\\\\n",
        "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
        " a_{n1} & a_{n2} & \\cdots & a_{nk} \\\\\n",
        "\\end{bmatrix},\\quad\n",
        "\\mathbf{B}=\\begin{bmatrix}\n",
        " b_{11} & b_{12} & \\cdots & b_{1m} \\\\\n",
        " b_{21} & b_{22} & \\cdots & b_{2m} \\\\\n",
        "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n",
        " b_{k1} & b_{k2} & \\cdots & b_{km} \\\\\n",
        "\\end{bmatrix}.\\end{split}\n",
        "$$\n",
        "<br>\n",
        "سپس با نماد گذاری مشابه قبل داریم:\n",
        "<br>\n",
        "$$\n",
        "\\begin{split}\\mathbf{A}=\n",
        "\\begin{bmatrix}\n",
        "\\mathbf{a}^\\top_{1} \\\\\n",
        "\\mathbf{a}^\\top_{2} \\\\\n",
        "\\vdots \\\\\n",
        "\\mathbf{a}^\\top_n \\\\\n",
        "\\end{bmatrix},\n",
        "\\quad \\mathbf{B}=\\begin{bmatrix}\n",
        " \\mathbf{b}_{1} & \\mathbf{b}_{2} & \\cdots & \\mathbf{b}_{m} \\\\\n",
        "\\end{bmatrix}.\\end{split}\n",
        "$$\n",
        "<br>\n",
        "سپس می توانیم ماتریس C که\n",
        "$n \\times m$\n",
        "است را به صورت زیر تشکیل دهیم:\n",
        "<br>\n",
        "<br>\n",
        "$$\n",
        "\\begin{split}\\mathbf{C} = \\mathbf{AB} = \\begin{bmatrix}\n",
        "\\mathbf{a}^\\top_{1} \\\\\n",
        "\\mathbf{a}^\\top_{2} \\\\\n",
        "\\vdots \\\\\n",
        "\\mathbf{a}^\\top_n \\\\\n",
        "\\end{bmatrix}\n",
        "\\begin{bmatrix}\n",
        " \\mathbf{b}_{1} & \\mathbf{b}_{2} & \\cdots & \\mathbf{b}_{m} \\\\\n",
        "\\end{bmatrix}\n",
        "= \\begin{bmatrix}\n",
        "\\mathbf{a}^\\top_{1} \\mathbf{b}_1 & \\mathbf{a}^\\top_{1}\\mathbf{b}_2& \\cdots & \\mathbf{a}^\\top_{1} \\mathbf{b}_m \\\\\n",
        " \\mathbf{a}^\\top_{2}\\mathbf{b}_1 & \\mathbf{a}^\\top_{2} \\mathbf{b}_2 & \\cdots & \\mathbf{a}^\\top_{2} \\mathbf{b}_m \\\\\n",
        " \\vdots & \\vdots & \\ddots &\\vdots\\\\\n",
        "\\mathbf{a}^\\top_{n} \\mathbf{b}_1 & \\mathbf{a}^\\top_{n}\\mathbf{b}_2& \\cdots& \\mathbf{a}^\\top_{n} \\mathbf{b}_m\n",
        "\\end{bmatrix}.\\end{split}\n",
        "$$\n",
        "\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "p53xYwCnXZdR"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "در ادامه انجام این ضرب در پایتون را میبینیم:\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "XsuWBoKbXZiT"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "B = np.ones([3, 4])\n",
        "A@B"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "aqKdd_ckapfK",
        "outputId": "54c5401d-d6df-411b-dd8f-3c10c8d070eb"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[ 3.,  3.,  3.,  3.],\n",
              "       [12., 12., 12., 12.]])"
            ]
          },
          "metadata": {},
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>5.1.نرم‎های برداری</font>\n",
        "<br>\n",
        "\n",
        "<b>فضای متریک یا متری</b>\n",
        " S به مجموعه ای گفته می شود که مفهومی از فاصله با تابع\n",
        "$d:S \\times S → \\mathbf{R}$\n",
        "با شرایط زیر بین اعضای آن تعریف شده باشد:\n",
        "\n",
        "($x,y,z \\in S$)\n",
        "\n",
        "1. $d(x,y) ≥ 0$\n",
        "2. $d(x,y) = 0 ⇔ x=y$\n",
        "3. $d(x,y) = d(y,x)$\n",
        "4. $d(x,z) \\le d(x,y)+d(y,z)$\n",
        "\n",
        "\n",
        "هر تابع به صورت\n",
        "$\\| \\cdot \\| : \\mathbf{R}^n → \\mathbf{R}^{+}$\n",
        "که در خواص سه گانه\n",
        "1. $\\|X\\|=0 ⇔ X=0 \\qquad ∀X \\in \\mathbf{R}^{n}$\n",
        "2. $\\| \\alpha X\\|= |\\alpha| \\|X\\| \\qquad ∀α \\in \\mathbf{R}$\n",
        "3. $\\|X+Y\\| \\leq \\|X\\|+\\|Y\\| \\qquad ∀X,Y \\in \\mathbf{R}^{n}$\n",
        "\n",
        "صدق کند یک \n",
        "<b>نرم برداری</b>\n",
        " روی فضای برداری \n",
        "$\\mathbf{R}^n$\n",
        "نامیده می شود.\n",
        "\n",
        "یکی از نرم های معروف نرم \n",
        "$\\ell_2$\n",
        "است که به صورت زیر تعریف می شود:\n",
        "\n",
        "$$\\|\\mathbf{X}\\|_2 = \\sqrt{\\sum_{i=1}^n x_i^2} = \\langle \\mathbf{X},\\mathbf{X} ⟩ $$\n",
        "\n",
        "یکی دیگر از نرم های معروف نرم \n",
        "$\\ell_1$\n",
        "است که به صورت زیر تعریف می شود:\n",
        "\n",
        "$$\\|\\mathbf{X}\\|_1 = \\sum_{i=1}^n \\left|x_i \\right|.$$\n",
        "\n",
        "<b>قضیه فیثاغورس)</b>\n",
        "اگر X بر Y عمود باشد یا به طور معادل\n",
        "$⟨ X,Y ⟩ = 0$\n",
        "آنگاه\n",
        "$$\n",
        "\\| \\mathbf{X} + \\mathbf{Y} \\|_2^2 =  \\| \\mathbf{X} \\|_2^2 +  \\| \\mathbf{Y} \\|_2^2\n",
        "$$\n",
        "\n",
        "<b> نامساوی کشی-شوارتز)</b>\n",
        "$$\n",
        "| ⟨ X,Y ⟩ | \\leq  \\| \\mathbf{X} \\|_2   \\| \\mathbf{Y} \\|_2\n",
        "$$\n",
        "\n",
        "در کاربردهایی از یادگیری ماشین و یادگیری عمیق به دنبال بیشینه کردن یا کمینه کردن فاصله بازنمایی‎هایی از دادهایمان هستیم مثلا کمینه کردن فاصله بین بازنمایی تصاویر یک فرد به ما در تشخیص چهره وی کمک می کند که در این موارد نرم‎ها به عنوان معیاری برای توصیف فاصله بردارها به ما کمک می کنند. \n",
        "\n",
        "تابع\n",
        "$\\|.\\|:\\mathbf{R}^{n\\times n}\\longrightarrow \\mathbf{R} ^+$\n",
        " را یک نرم ماتریسی گوییم هرگاه در شرایط ۳ گانه زیر صدق کند.\n",
        "\n",
        " 1. $ \\|A\\| \\geq 0 , \\|A\\|=0 \\iff A=0 \\hspace{.2cm} \\forall A \\in \\mathbf{R}^{n \\times n}$\n",
        " 2. $\t\\|\\alpha A\\|=|\\alpha| \\|A\\|A \\hspace{ .2cm} \\forall \\alpha \\in \\mathbf{R}$\n",
        " 3. $ \\|A+B\\| \\leq \\|A\\|+\\|B\\| \\hspace{.3cm} \\forall A,B \\in \\mathbf{R}^{n \\times n}$\n",
        "\n",
        "  توجه کنید خاصیت سوم همان نامساوی مثلث است  که البته گاهی اوقات به آن سازگاری جمعی هم گفته می‌شود.\n",
        " \n",
        "   هر تابع \n",
        " $\\|.\\|$\n",
        " که در خواص سه گانه بالا صدق کند یک نرم ماتریس خواهد بود. البته در کاربردها و آنالیز همگرایی روش‎ها اغلب  لازم است یک نرم ماتریسی خاصیت اضافی دیگری به صورت \n",
        " $\\|AB\\|\\leq\\|A\\|\\|B\\| \\hspace{.3cm} (4)$\n",
        "داشته باشد که به آن خاصیت ضربی گفته می‌شود.\n",
        "\n",
        "بنابراین یک نرم ممکن است فقط در ۳ خاصیت گفته شده صدق کن و در خاصیت چهارم صدق نکند . اما همانطور که گفته شد اگر نرم ماتریسی که با آن کار می کنیم در خاصیت ضربی هم صدق کند بسیار مناسب و کاربردی تر خواهد بود. \t\n",
        "\n",
        "اولین نرمی که ظاهراً تعمیم نرم ۲ برداری برای ماتریس‌هاست نرم فربنیوس است که به صورت \n",
        "$\\|.\\|_F$\n",
        "نمایش داده می‌شود و برابر است با جذر مجموع مربعات درایه‌های ماتریس.\n",
        "به راحتی می‌توان نشان داد که هر ۴ شکلی که برای نرم فربنیوس در ادامه آورده شده‌اند باهم معادل می‌باشند.\n",
        "\n",
        "1. فرض کنید A ماتریسی \n",
        "$n\\times n$\n",
        "باشد آنگاه:\n",
        "$$\\|A\\|_F=\\sqrt{trace(A^TA)}=\\sqrt{trace(AA^T)}$$\n",
        "\n",
        "2. فرض کنید \n",
        "$A=(a_{ij})$\n",
        "آنگاه:\n",
        "$$\\|A\\|_F=\\sqrt{\\sum_{i=1}^{n}\\sum_{j=1}^{n}\\mid a_{ij}\\mid ^2}$$\n",
        "\n",
        "3. فرض کنید نمایش ستونی A به صورت \n",
        "$A=[a_1 \\hspace{.2cm} a_2 \\hspace{.2cm} ... \\hspace{.2cm} a_n]$\n",
        "باشد، آنگاه:\n",
        "$$\\|A\\|_F=\\sqrt{\\sum_{i=1}^{n}\\|a_i\\|_2^2}$$\n",
        "\n",
        "4. فرض کنید نمایش سطری A به صورت \n",
        "$A=\\begin{bmatrix}\n",
        "a'_1\\\\\\vdots \\\\ a'_n\n",
        "\\end{bmatrix}$\n",
        "باشد آنگاه:\n",
        "$$\\|A\\|_F=\\sqrt{\\sum_{i=1}^{n}\\|a'_i\\|_2^2}$$\n",
        "\n",
        "\n",
        "  دسته‌ای دیگر از نرم‎های ماتریسی که بر اساس یک نرم برداری به صورت \n",
        " $$\\|A\\|=\\max_{X\\neq 0} \\frac{\\|AX\\|}{\\|X\\|}$$\n",
        " ساخته می‌شوند را نرم القایی می‌نامیم. توجه کنید که دو نرم سمت راست رابطه‌ی فوق نرم برداری بوده و نرم سمت چپ رابطه بیانگر یک نرم ماتریسی است.\n",
        "\n",
        "<b>مثال)</b>\n",
        "با استفاده از تعریف، مقدار \n",
        "$\\|A\\|_1$\n",
        "  را برای ماتریس \n",
        "  $A=\\begin{bmatrix}\n",
        "  0&-1\\\\2&0\n",
        "  \\end{bmatrix}$\n",
        "  محاسبه کنید.\n",
        "\n",
        "<b>حل)</b>\n",
        "فرض کنید \n",
        "$X\\in \\mathbf{R}^2$\n",
        "طوری باشد که \n",
        "$\\|X\\|_1=1$\n",
        "یعنی اگر \n",
        "$X=\\begin{bmatrix}\n",
        "x_1\\\\x_2\n",
        "\\end{bmatrix}$\n",
        "آنگاه \n",
        "$\\mid x_1 \\mid + \\mid x_2 \\mid =1 $\n",
        "از طرفی داریم:\n",
        "<br>\n",
        "\n",
        "$$AX=\\begin{bmatrix}\n",
        "0&-1\\\\2&0\n",
        "\\end{bmatrix}\\begin{bmatrix}\n",
        "x_1\\\\x_2\n",
        "\\end{bmatrix}=\\begin{bmatrix}\n",
        "-x_2\\\\2x_1\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "بنابراین داریم :\n",
        "$\\|AX\\|_1=\\left \\| \\begin{bmatrix}\n",
        "-x_2\\\\2x_1\n",
        "\\end{bmatrix} \\right \\|_1=\\mid x_2 \\mid + 2\\mid x_1 \\mid$\n",
        "لذا داریم :\n",
        "$$\\|A\\|_1=\\max_{\\|X\\|_1=1}\\|AX\\|_1=\\max_{\\mid x_1 \\mid + \\mid x_2 \\mid =1}\\left \\{ \\mid x_2 \\mid +2\\mid x_1 \\mid \\right \\}$$\n",
        "مساله اخیر یک مساله بهینه‌سازی (ماکزیمم) غیر خطی (به دلیل وجود قدر مطلق در تابع هدف \n",
        "$|x_2|+2|x_1|$\n",
        ")\n",
        "مقید است. در واقع یک قید غیر خطی به صورت\n",
        "$|x_1|+|x_2|=1$\n",
        "مفروض است.\n",
        "$$\\max |x_2|+2|x_1|\\hspace{5cm}$$\n",
        "$$ s.t  \\hspace{7cm} $$\n",
        "$$|x_1|+|x_2|=1\\hspace{5cm}$$\n",
        "که حل آن را به خواننده واگذار می کنیم.\n",
        "\n",
        "<b>قضیه)</b>\n",
        "هرگاه \n",
        "$A$\n",
        "یک ماتریس حقیقی \n",
        "$n\\times n$\n",
        "باشد، آنگاه برای نرم‌های ماتریس القایی داریم:\n",
        "\n",
        "  $$(1)\\quad ||A||_1=\\max_{1\\le j\\le n}\\sum_{i=1}^{n}\n",
        "  |a_{ij}|$$\n",
        "  \n",
        "  $$(2)\\quad ||A||_\\infty=\n",
        "  \\max_{1\\le i\\le n}\\sum_{j=1}^n\n",
        "  |a_{ij}|$$\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "GGw4sQZSXZmO"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>6.1.مباحث تکمیلی</font>\n",
        "<br>\n",
        "\n",
        "مجموعه بردارهای \n",
        "$\\{v_1,v_2,...,v_n\\}$\n",
        "در \n",
        "$\\mathbb{R}^n$\n",
        "متعامد است اگر :\n",
        "\\begin{gather*}\n",
        "  v_i ^{T} v_j = 0 \\hspace{1cm}, i \\neq j\n",
        "\\end{gather*}\n",
        "و بعلاوه می‌گوییم متعامد یکّه‌اند اگر :\n",
        "\\begin{gather*}\n",
        "  v_i ^{T} v_i = 1 \\hspace{1cm}, i =1,2,3,...,m\n",
        "\\end{gather*}\n",
        "\n",
        "\n",
        "فرض کنید مجموعه \n",
        "$ \\{v_1,v_2,...,v_m\\} $\n",
        "یک پایه برای \n",
        "$ \\mathbb{R}^n $\n",
        "باشد. چنانچه مجموعه این بردارها متعامد یکّه باشد گوییم این پایه یک پایه یکّه متعامد برای \n",
        "$ \\mathbb{R}^n $\n",
        "است.\n",
        "\n",
        "<b>مثال)</b>\n",
        "فرض کنید مجموعه \n",
        "$ \\{v_1,v_2,v_3\\} $\n",
        "یک مجموعه یکّه متعامد برای\n",
        "$ \\mathbb{R}^3 $\n",
        "باشد. آنگاه بنا به تعریف پایه بودن هر عضو دلخواه \n",
        "$ \\mathbb{R}^3 $\n",
        "مثل \n",
        "$ u $\n",
        "را می‌توان برحسب ترکیب خطی این بردارها نوشت. یعنی\n",
        "\\begin{gather}\n",
        "  u = c_1 v_1 + c_2 v_2 + c_3 v_3\n",
        "\\end{gather}\t\t \n",
        "ضرایب\n",
        "$ c_i $ها\n",
        "را محاسبه کنید.\n",
        "\n",
        "<b>حل)</b>\n",
        "با ضرب طرفین رابطه‌ی فوق از سمت چپ در \n",
        "$ v_1 ^T $\n",
        "داریم\n",
        "\\begin{gather}\n",
        "  v_1 ^T u = c_1 v_1 ^T  v_1 + c_2 v_1 ^T  v_2 + c_3 v_1 ^T  v_3\n",
        "\\end{gather}\t\n",
        "\n",
        "چون مجموعه‌ی داده شده متعامد یکّه است پس داریم\n",
        "\\begin{gather*}\n",
        "  v_1 ^T v_1 =1 \\;, \\; v_1 ^T v_2 =0 \\;, \\; v_1 ^T v_3 =0  \\;\n",
        "\\end{gather*}\n",
        "\n",
        "لذا با جایگذاری مقادیر فوق داریم \n",
        "\\begin{gather*}\n",
        "  v_1 ^T u = c_1 \\times 1 + c_2 \\times 0 + c_3 \\times 0 = c_1 \n",
        "\\end{gather*}\n",
        "پس ضریب \n",
        "$ c_1 $\n",
        "به صورت \n",
        "$ c_1 = v_1 ^T u $\n",
        "حاصل می‌شود.\n",
        "\n",
        "برای بدست آوردن \n",
        "$v_2$\n",
        "کافی‌ست طرفین را از چپ در \n",
        "$v_2 ^T$\n",
        "ضرب کنیم، بنابراین داریم\n",
        "\\begin{gather*}\n",
        "  v_2 ^T u = c_1\\underbrace{ v_2 ^T v_1}_0 + c_2 \\underbrace{v_2 ^T v_2}_1 + c_3 \\underbrace{v_2 ^T v_3}_0\n",
        "\\end{gather*}\n",
        "\n",
        "لذا\n",
        "$ c_2 = v_2 ^T u $\n",
        "کامل می‌شود، به طور مشابه \n",
        "$ c_3 = v_3 ^T u $\n",
        "کامل می‌شود.\n",
        "\n",
        "<br>\n",
        "\n",
        "فرض کنید بردارهای متعامد و یکّه $ v_1 $ و $ v_2 $ به صورت زیر داده شده‌اند.\n",
        "\n",
        "\\begin{gather*}\n",
        "  v_1 = \\frac{1}{7} \\begin{bmatrix}\n",
        "    3\\\\-6\\\\2\n",
        "  \\end{bmatrix} \\; , \\; v_2 = \\frac{2}{7} \\begin{bmatrix}\n",
        "    1\\\\ \\frac{3}{2} \\\\ 3\n",
        "  \\end{bmatrix}\n",
        "\\end{gather*}\n",
        "آن‌‌ها را به عنوان ستون یک ماتریس مثل $Q$ در نظر می‌گیریم.\n",
        "\n",
        "\\begin{align*}\n",
        "  Q = \\begin{bmatrix}\n",
        "    v_1 ,& v_2\n",
        "  \\end{bmatrix} = \\begin{bmatrix}\n",
        "    \\frac{3}{7} & \\frac{2}{7} \\\\\n",
        "    -\\frac{6}{7} & \\frac{3}{7} \\\\\n",
        "    \\frac{2}{7} & \\frac{6}{7} \\\\\n",
        "  \\end{bmatrix}_{3 \\times 2} &&\n",
        "\\end{align*}\n",
        "آنگاه همواره چنین ماتریسی خاصیت زیر را دارد:\n",
        "\n",
        "$$ Q^T Q = I $$\n",
        "\n",
        "زیرا \n",
        "\\begin{align*}\n",
        "  Q^T Q = \\begin{bmatrix}\n",
        "    \\frac{3}{7} & -\\frac{6}{7} & \\frac{2}{7} \\\\\n",
        "    \\frac{2}{7} & \\frac{3}{7} & \\frac{6}{7} \\\\\n",
        "  \\end{bmatrix}\\begin{bmatrix}\n",
        "    \\frac{3}{7} & \\frac{2}{7} \\\\\n",
        "    -\\frac{6}{7} & \\frac{3}{7} \\\\\n",
        "    \\frac{2}{7} & \\frac{6}{7} \\\\\n",
        "  \\end{bmatrix}\n",
        "  = \\begin{bmatrix}\n",
        "    \\frac{9}{49}+\\frac{36}{49}+\\frac{4}{49} & \\frac{6}{49}-\\frac{18}{49}+\\frac{12}{49} \\\\\n",
        "    \\frac{6}{49}-\\frac{18}{49}+\\frac{12}{49} & \n",
        "    \\frac{4}{49} +\\frac{9}{49}+\\frac{36}{49} \\\\\n",
        "  \\end{bmatrix} = \\begin{bmatrix}\n",
        "    1 & 0 \\\\ 0 & 1\n",
        "  \\end{bmatrix}\t= I &&\t\t\t\n",
        "\\end{align*}\n",
        "\n",
        "\n",
        "$ \\Leftarrow $\n",
        "درواقع به چنین ماتریس‌هایی که ستون‌هایش متعامدند، \n",
        "<b>ایزومتری</b>\n",
        " گوییم.\n",
        "\n",
        "توجه کنید که اگر ماتریس $Q$ که توسط بردارهای متعامد یکّه $ v_i $ ساخته می‌شود، مربعی باشد علاوه بر خاصیت \n",
        "$Q^T Q = I$\n",
        "دارای خاصیت\n",
        "$QQ^T = I$\n",
        "نیز هست که در این حالت به آن یک ماتریس \n",
        "<b>متعامد</b>\n",
        " می‌گوییم.\n",
        "\n",
        "برای مثال اگر بردارهای متعامد یکّه زیر را داشته باشیم\n",
        "\n",
        "\\begin{align*}\n",
        "  v_1 = \\begin{bmatrix}\n",
        "    0\\\\0\\\\-1\n",
        "  \\end{bmatrix} \\;, \\; v_2 = \\frac{1}{\\sqrt{2}}\\begin{bmatrix}\n",
        "    1\\\\1\\\\0\n",
        "  \\end{bmatrix} \\; , \\; v_3 =\\frac{1}{\\sqrt{2}} \\begin{bmatrix}\n",
        "    1\\\\-1\\\\0\n",
        "  \\end{bmatrix}\n",
        "\\end{align*}\n",
        "آنگاه ماتریس ساخته شده با بردارهای $ v_1 $ ، $ v_2 $ و $ v_3 $ مربعی و به صورت زیر است:\n",
        "\n",
        "\\begin{align*}\n",
        "  Q = [v_1,v_2,v_3] = \\begin{bmatrix}\n",
        "    0 & \\frac{1}{\\sqrt{2}} & \\frac{1}{\\sqrt{2}}\\\\\n",
        "    0 & \\frac{1}{\\sqrt{2}} & -\\frac{1}{\\sqrt{2}}\\\\\n",
        "    -1 & 0 & 0\n",
        "  \\end{bmatrix}_{3 \\times 3} \n",
        "\\end{align*}\n",
        "و با محاسباتی ساده می‌توان دید که $Q$ در \n",
        "$ Q^T Q =I $و\n",
        "$ QQ^T = I $ \n",
        "صدق می‌کند، لذا ماتریس $Q$ یک ماتریس متعامد است.\n",
        "\n",
        "لازم است که بیان کنیم در یک ماتریس ایزومتری تنها ستون‌ها بر هم متعامد یکّه‌اند امّا در یک ماتریس متعامد هم ستون‌ها و هم سطرها بر هم عمودند.\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "cOjx-QLOXZqk"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "\n",
        "فرض کنید دو بردار $u$ و $v$ داده شده‌اند و بردار $v$ با بردار $u$ زاویه $\\theta$ بسازد.(شکل زیر را ببینید)\n",
        "\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "cKmN6djXXZow"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![1.png]()"
      ],
      "metadata": {
        "id": "JbI_vbJ8mi2j"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "\n",
        "از بردار $v$ عمودی بر بردار $u$ رسم می‌کنیم و محل تقاطع را $P$ نام‌گذاری می کنیم. آنگاه بردار $OP$ را \n",
        "<b>تصویر</b>\n",
        " $v$ بر $u$ می‌نامیم.\n",
        "\n",
        "برای بدست آوردن بردار $OP$ برحسب $u$ و $v$ به صورت زیر عمل می‌کنیم:\n",
        "\n",
        "\\begin{align*}\n",
        "\\triangle OAP : \\cos (\\theta) = \\frac{\\text{طول ضلع مجاور}}{\\text{طول وتر}} \n",
        "= \\frac{\\lVert OP \\rVert_2}{\\lVert v \\rVert_2} \\\\\n",
        "\\rightarrow \\lVert OP \\rVert_2 = \\lVert v \\rVert_2 \\cos (\\theta) \\tag{1}\n",
        "\\end{align*}\n",
        "از طرفی برای ضرب داخلی $u$ و $v$ داریم:\n",
        "\\begin{align*}\n",
        "\\langle u,v \\rangle = \\langle v,u \\rangle = \\lVert v \\rVert_2 \\lVert u \\rVert_2 \\cos (\\theta) \\tag{2}\n",
        "\\end{align*}\n",
        "\n",
        "\n",
        "از (1) و (2) داریم\n",
        "\\begin{align*}\n",
        "\\lVert OP \\rVert_2 = \\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_2}\n",
        "\\end{align*}\n",
        "اکنون برای بدست آوردن بردار تصویر $OP$ کافی است بردار یکّه و هم‌جهت \n",
        "$\\frac{u}{\\lVert u \\rVert_2}$\n",
        "را در \n",
        "$\\lVert OP \\rVert_2$\n",
        "ضرب کنیم:\n",
        "\\begin{align*}\n",
        "OP = \\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_2} . \\frac{u}{\\lVert u \\rVert_2} = \\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_{2} ^{2} } . u\n",
        "\\end{align*}\n",
        "\n",
        "معمولا بردار فوق را با نماد \n",
        "$ proj_u (v) $\n",
        "نمایش می‌دهند.\n",
        "\n",
        "$$\n",
        "proj_u (v) =  \\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_{2} ^{2} } . u\n",
        "$$\n",
        "\n",
        "\n",
        "<b>مثال)</b>\n",
        "تصویر بردار \n",
        "$ v = \\begin{bmatrix}\n",
        "1\\\\2\n",
        "\\end{bmatrix}$\n",
        "را بر بردار \n",
        "$ u = \\begin{bmatrix}\n",
        "2\\\\0\n",
        "\\end{bmatrix} $\n",
        "بدست آورید.\n",
        "\n",
        "<b>حل)</b>\n",
        "داریم\n",
        "\n",
        "\\begin{align*}\n",
        "  &\\langle v,u \\rangle = v^T u = \\begin{bmatrix}\n",
        "    1 & 1\n",
        "  \\end{bmatrix} \\begin{bmatrix}\n",
        "    2\\\\0\n",
        "  \\end{bmatrix} = 2 \\\\\n",
        "  &\\lVert u \\rVert_{2} ^{2} = 0^2 + 2^2 = 4 \\\\\n",
        "  &proj_u (v) = \\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_{2} ^{2} } . u = \\frac{2}{4} u =\\frac{1}{2} u = \\begin{bmatrix}\n",
        "    1\\\\0\n",
        "  \\end{bmatrix} &&\n",
        "\\end{align*}\n",
        "\n",
        "نتیجه کاملا با شکل زیر مطابقت دارد.\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "V7Pc8uLjmtcM"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![2.png]()"
      ],
      "metadata": {
        "id": "pNOEUJEVoSaJ"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "فرض کنید دو بردار $u$ و $v$ داده شده‌اند. به تصویر بردار $v$ بر $u$ دقت کنید.\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "DUPSxEyei6gt"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![3.png]()"
      ],
      "metadata": {
        "id": "4_qvRQ5hoplh"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "بردار \n",
        "$ -proj_u (v)$\n",
        "به صورت زیر است:\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "s0pvU176ojCQ"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![4.png]()"
      ],
      "metadata": {
        "id": "Z-glDVkZo09n"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "\n",
        "<br>\n",
        "لذا جمع دو بردار $v$ و \n",
        "$ -proj_u (v) $ \n",
        "به صورت زیر است:\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "JcNfZPgUojE0"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "![5.png]()"
      ],
      "metadata": {
        "id": "dHLk2kY0o9ZI"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "این از لحاظ هندسی نشان می‌دهد که بردار $v-proj_u(v)$ بر بردار $u$ عمود است.\n",
        "البته این نتیجه را می‌توان به صورت جبری نیز اثبات کرد؛ زیرا\n",
        "\n",
        "\n",
        "\\begin{align*}\n",
        "\\langle v-proj_u(v) , u \\rangle &= \\langle u , v-proj_u(v) \\rangle = u^T (v-proj_u(v)) \\\\\n",
        "&= u^T v - u^T proj_u(v) = u^T v - u^T (\\frac{\\langle v,u \\rangle}{\\lVert u \\rVert_{2} ^{2} } ) .u\\\\\n",
        "&= u^T v - u^T (\\frac{\\langle u,v \\rangle}{\\lVert u \\rVert_{2} ^{2} }) .u\n",
        "= u^T v - u^T (\\frac{u^T v}{\\lVert u \\rVert_{2} ^{2} }) .u \\\\\n",
        "&= u^T v - (\\frac{u^T v}{\\lVert u \\rVert_{2} ^{2} })u^T u \\; ; \\; u^T u = \\lVert u \\rVert_{2} ^2 \\\\\n",
        "&= u^T v - (\\frac{u^T v}{\\lVert u \\rVert_{2} ^{2} }). \\lVert u \\rVert_{2} ^{2} = u^T v - u^T v = 0 && \n",
        "\\end{align*}\n",
        "\n",
        "بنابراین ثابت کردیم که\n",
        "$$\n",
        "v-proj_u(v) \\;  \\bot \\; u\n",
        "$$\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "EQFNUaqvojHc"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "فرض کنید A ماتریسی\n",
        "$n \\times n$\n",
        "باشد. آنگاه\n",
        "$( \\lambda,x )$\n",
        "یک\n",
        "<b>جفت ویژه</b>\n",
        "ماتریس A نامیده می‎شوند اگر\n",
        "$$AX= \\lambda X \\qquad (1)$$\n",
        "توجه کنید X برداری غیرصفر است و \n",
        "$\\lambda$\n",
        "یک اسکالر است. از تعریف (1) داریم\n",
        "$$AX- \\lambda X = 0 \\; \\Rightarrow \\; AX - \\lambda I_n X = 0 \\; \\Rightarrow \\; (A-\\lambda I_n)X= 0$$\n",
        "چون فرض کرده ایم\n",
        "$X \\neq 0$\n",
        "پس باید ماتریس\n",
        "$A-\\lambda I_n$\n",
        "منفرد باشد یعنی دترمینان آن مساوی صفر باشد زیرا اگر ناصفر باشد آنگاه وارون پذیر بوده و\n",
        "$$(A-\\lambda I_n)X=0 \\; \\Rightarrow \\; (A-\\lambda I_n)^{-1} \\times (A-\\lambda I_n)X = (A-\\lambda I_n)^{-1} \\times 0 = 0 \\Rightarrow IX=0 \\Rightarrow X=0  $$\n",
        "که تناقض است پس ماتریس \n",
        "$(A-\\lambda I_n)$\n",
        "باید منفرد باشد یعنی\n",
        "$det(A-\\lambda I_n)=0$\n",
        "می توان دید که\n",
        "$P_A(\\lambda )=det(A-\\lambda I_n)$\n",
        "یک چندجمله ای برحسب\n",
        "$\\lambda$\n",
        "و دقیقا درجه n است و آن را\n",
        "<b>چندجمله ای مشخصه</b>\n",
        "ماتریس A می ‎نامند. بنابر (1) ریشه‌های \n",
        "$P_A(\\lambda )$\n",
        "همان\n",
        "<b>مقادیر ویژه</b>\n",
        "A\n",
        "هستند لذا بنابر قضیه اساسی جبر ماتریس A دارای n مقدار ویژه است.\n",
        "\n",
        "<b>قضیه اساسی جبر)</b>\n",
        "هر چندجمله ای درجه n در اعداد مختلط دارای n ریشه با احتساب تکرر است.\n",
        "$$p(x) = a(x - \\lambda_1)^{t_1} (x - \\lambda_2)^{t_2} \\cdots (x - \\lambda_k)^{t_k}$$\n",
        "\n",
        "<br>\n",
        "\n",
        "<b>مثال)</b>\n",
        "جفت ویژه ماتریس زیر را محاسبه کنید.\n",
        "$$\n",
        "A=\n",
        "\\begin{bmatrix}\n",
        "2&1 \\\\\n",
        "1&2 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "<b>حل)</b>\n",
        "ابتدا چندجمله ای مشخصه را محاسبه می کنیم\n",
        "$$P_A( \\lambda ) = det(A - \\lambda I_2 )$$\n",
        "$$A - \\lambda I_2 = \n",
        "\\begin{bmatrix}\n",
        "2&1 \\\\\n",
        "1&2 \\\\\n",
        "\\end{bmatrix} - \\lambda\n",
        "\\begin{bmatrix}\n",
        "1&0 \\\\\n",
        "0&1 \\\\\n",
        "\\end{bmatrix} =\n",
        "\\begin{bmatrix}\n",
        "2&1 \\\\\n",
        "1&2 \\\\\n",
        "\\end{bmatrix} -\n",
        "\\begin{bmatrix}\n",
        "\\lambda&0 \\\\\n",
        "0&\\lambda \\\\\n",
        "\\end{bmatrix} =\n",
        "\\begin{bmatrix}\n",
        "2-\\lambda&1 \\\\\n",
        "1&2-\\lambda \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "لذا\n",
        "  \\begin{align*}\n",
        "    P_A(\\lambda ) &= det(A - \\lambda I_2) = det \\left(\n",
        "\\begin{bmatrix}\n",
        "2-\\lambda&1 \\\\\n",
        "1&2-\\lambda \\\\\n",
        "\\end{bmatrix}\n",
        "    \\right) \\\\\n",
        "    &= (2-\\lambda)(2-\\lambda) - (1)(1) = \\lambda^{2} - 4\\lambda + 4 -1  \\\\\n",
        "    &= \\lambda^{2} - 4\\lambda + 3\n",
        "  \\end{align*}\n",
        "$$P_A(\\lambda)=0 \\Rightarrow \\lambda^2-4\\lambda+3=0 \\Rightarrow (\\lambda-1)(\\lambda-3)=0 \\Rightarrow \\lambda_1=1, \\lambda_2=3$$\n",
        "\n",
        "برای بدست آوردن بردار ویژه متناظر با\n",
        "$\\lambda_1=1$\n",
        "داریم\n",
        "$$\n",
        "(A - \\lambda_1 I_2) X_1  = 0 \\Rightarrow \n",
        "\\begin{bmatrix}\n",
        "2-\\lambda_1&1 \\\\\n",
        "1&2-\\lambda_1 \\\\\n",
        "\\end{bmatrix}  X_1 = 0 \\Rightarrow\n",
        "\\begin{bmatrix}\n",
        "1&1 \\\\\n",
        "1&1 \\\\\n",
        "\\end{bmatrix}  X_1 = 0 \\Rightarrow\n",
        "\\begin{bmatrix}\n",
        "1&1 \\\\\n",
        "1&1 \\\\\n",
        "\\end{bmatrix}\n",
        "\\begin{bmatrix}\n",
        "x_1 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix} =\n",
        "\\begin{bmatrix}\n",
        "0 \\\\\n",
        "0 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\\begin{equation*}\n",
        "\\Rightarrow\n",
        "\\begin{cases}\n",
        "x_1+x_2=0 \\\\\n",
        "x_1+x_2=0\n",
        "\\end{cases}\n",
        "\\; \\Rightarrow \\; x_1=-x_2\n",
        "\\end{equation*}\n",
        "پس داریم\n",
        "$$X_1=\n",
        "\\begin{bmatrix}\n",
        "x_1 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix}=\n",
        "\\begin{bmatrix}\n",
        "-x_2 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix}=x_2\n",
        "\\begin{bmatrix}\n",
        "-1 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "چون باید\n",
        "$X_1 \\neq 0$\n",
        "کافی است انتخاب کنیم به طور دلخواه\n",
        "$x_2=1$\n",
        "پس بردار ویژه\n",
        "$X_1$\n",
        "به صورت زیر حاصل می شود:\n",
        "$$X=\n",
        "\\begin{bmatrix}\n",
        "-1 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "\n",
        "برای بردار ویژه متناظر با\n",
        "$\\lambda_2=3$\n",
        "داریم\n",
        "$$\n",
        "(A - \\lambda_2 I_2) X_2  = 0 \\Rightarrow \n",
        "\\begin{bmatrix}\n",
        "2-\\lambda_2&1 \\\\\n",
        "1&2-\\lambda_2 \\\\\n",
        "\\end{bmatrix} X_2 = 0 \\Rightarrow\n",
        "\\begin{bmatrix}\n",
        "-1&1 \\\\\n",
        "1&-1 \\\\\n",
        "\\end{bmatrix} X_2 = 0 \\Rightarrow\n",
        "\\begin{bmatrix}\n",
        "-1&1 \\\\\n",
        "1&-1 \\\\\n",
        "\\end{bmatrix}\n",
        "\\begin{bmatrix}\n",
        "x_1 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix} =\n",
        "\\begin{bmatrix}\n",
        "0 \\\\\n",
        "0 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\\begin{equation*}\n",
        "\\Rightarrow\n",
        "\\begin{cases}\n",
        "-x_1+x_2=0 \\\\\n",
        "x_1-x_2=0\n",
        "\\end{cases}\n",
        "\\; \\Rightarrow \\; x_1=x_2\n",
        "\\end{equation*}\n",
        "پس داریم\n",
        "$$X_2=\n",
        "\\begin{bmatrix}\n",
        "x_1 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix}=\n",
        "\\begin{bmatrix}\n",
        "x_2 \\\\\n",
        "x_2 \\\\\n",
        "\\end{bmatrix}=x_2\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "چون باید\n",
        "$X_2 \\neq 0$\n",
        "کافی است انتخاب کنیم به طور دلخواه\n",
        "$x_2=1$\n",
        "پس بردار ویژه\n",
        "$X_2$\n",
        "به صورت زیر حاصل می شود:\n",
        "$$X_2=\n",
        "\\begin{bmatrix}\n",
        "1 \\\\\n",
        "1 \\\\\n",
        "\\end{bmatrix}\n",
        "$$\n",
        "\n",
        "\n",
        "<b>نکته)</b>\n",
        "$$trace(A)=\\sum_{i} \\lambda_i , \\qquad det(A)=\\prod_i \\lambda_i , \\qquad trace(A^k)=\\sum_{i} \\lambda_i^k $$\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "cJTb4wFBoZjM"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<br>\n",
        "\n",
        "ماتریس\n",
        "$ A $\n",
        "را \n",
        "<b>قطری شدنی</b>\n",
        " گویند هرگاه ماتریس نامنفرد\n",
        "$ P $\n",
        "موجود باشد که\n",
        "$$\n",
        "  A = P D P^{-1}\n",
        "$$\n",
        "که در این صورت گوییم\n",
        "$ A $\n",
        "با یک ماتریس قطری\n",
        "$ D $\n",
        "متشابه است. وقتی ماتریس\n",
        "$ A $\n",
        "را بتوان به صورت\n",
        "فوق\n",
        "تجزیه نمود آنگاه می‌توان از فوایدی بهره برد. برای مثال عناصر قطری\n",
        "$ D $\n",
        "همان مقادیر ویژه‌ی\n",
        "$ A $\n",
        "خواهند بود. \n",
        "\n",
        "به علاوه توان\n",
        "$ k $-\n",
        "ام ماتریس\n",
        "$ A $\n",
        "را به راحتی از رابطه‌ي\n",
        "$$\n",
        "A^k = P D^k P^{-1}\n",
        "$$\n",
        "به دست می‌آید. توجه کنید که توان\n",
        "$ k $-\n",
        "ام ماتریس قطری\n",
        "$$\n",
        "D^{k}=\\left[\\begin{array}{llll}\n",
        "  d_{1} & 0 &0 &0 \\\\\n",
        "  0&d_{2} &0 & 0\\\\\n",
        "  0& 0 &\\ddots  & 0\\\\\n",
        "  0&0 &0 & d_{n}\n",
        "\\end{array}\\right]\n",
        "$$\n",
        "\n",
        "به راحتی از\n",
        "$$\n",
        "D^{k}=\\left[\\begin{array}{llll}\n",
        "  d_{1}^{k} & 0 &0 &0 \\\\\n",
        "  0&d_{2}^{k} &0 & 0\\\\\n",
        "  0& 0 &\\ddots  & 0\\\\\n",
        "  0&0 &0 & d_{n}^{k}\n",
        "\\end{array}\\right]\n",
        "$$\n",
        "محاسبه می‌شود.\n",
        "اکنون ماتریس زیر را در نظر بگیرید\n",
        "$$\n",
        "A=\\left(\\begin{array}{rrr}\n",
        "  3 & 2 & 2 \\\\\n",
        "  1 & 2 & 2 \\\\\n",
        "  -1 & -1 & 0\n",
        "\\end{array}\\right)\n",
        "$$\n",
        "با محاسبه‌ی جفت ویژه‌های \n",
        "$ A $\n",
        "داریم.\n",
        "\n",
        "\\begin{equation*}\n",
        "\\lambda_1=1, ~~ \\lambda_2=2, ~~ \\lambda_3=2,~~ X_1 = \\begin{bmatrix}\n",
        "-1\\\\\n",
        "1\\\\\n",
        "0\n",
        "\\end{bmatrix},~~X_2=X_3=\\begin{bmatrix}\n",
        "-2\\\\\n",
        "0\\\\\n",
        "1\n",
        "\\end{bmatrix} \n",
        "\\end{equation*}\n",
        "چون\n",
        "$ A $\n",
        "دارای سه بردار ویژه‌ی مستقل خطی نیست پس قطری شدنی نیست. بنابراین وجود تجزیه‌ای به صورت\n",
        "$ A=PDP^{-1} $\n",
        "ممکن نیست و این محدودیت‌هایی در کار کردن با ماتریس\n",
        "$ A $\n",
        "(در این مثال) می‌تواند به وجود آورد.\n",
        "با توجه به اینکه در عمل ممکن است با ماتریس‌هایی سروکار داشته باشیم که قطری شدنی نباشند یعنی دارای تجزیه‌ای به شکل \n",
        "$ A=PDP^{-1} $\n",
        "نباشند پس معقول است که به دنبال یک تجزیه‌ی جایگزین برای\n",
        "$ A $\n",
        "باشیم که احتمالا از خواص خوبی مانند آنچه در تجزیه‌ی قطری شدنی دارد، دارا باشد. به علاوه چنین تجزیه‌ی جایگزینی می‌بایست برای هر ماتریس دلخواه موجود باشد و از محدودیت‌های تجزیه قطری شدنی برخوردار نباشد.\n",
        "\n",
        "عموما چنین تجزیه‌ای جایگزینی برای $ A $\tوجود دارد که به صورت\n",
        "\\begin{equation} \\tag{1}\n",
        "  A=U \\Sigma V^T\n",
        "\\end{equation} \n",
        "بیان می‌شود که در آن\n",
        "$ U,V $\n",
        "ماتریس‌هایی متعامدند یعنی\n",
        "$$\n",
        "UU^T = U^T U =I,\\qquad VV^T = V^T V = I\n",
        "$$\n",
        "و\n",
        "$ \\Sigma $\n",
        "ماتریسی قطری است. مثلا برای ماتریس همین مثال داریم\n",
        "\n",
        "\\begin{align*}\n",
        "  \\left[\\begin{array}{rrr}\n",
        "    3 & 2 & 2 \\\\\n",
        "    1 & 2 & 2 \\\\\n",
        "    -1 & -1 & 0\n",
        "  \\end{array}\\right]=\n",
        "  \\left[\\begin{array}{rrr}\n",
        "    -0.7984 & 0.4400 & 0.4110 \\\\\n",
        "    -0.5545 & -0.8033 & -0.2172 \\\\\n",
        "    0.2346 & -0.4013 & 0.8854\n",
        "  \\end{array}\\right] \\times \\\\\n",
        "  \\left[\\begin{array}{rrrr}\n",
        "    5.1096 & 0 & 0 \\\\\n",
        "    0 & 1.2152 & 0 \\\\\n",
        "    0 & 0 & 0.6442\n",
        "  \\end{array}\\right]\t\\times \\\\\n",
        "  \\left[\\begin{array}{rrr}\n",
        "    -0.6232 & 0.7554 & 0.2023 \\\\\n",
        "    -0.5755 & -0.2678 & -0.7727 \\\\\n",
        "    -0.5296 & -0.5980 & 0.6016\n",
        "  \\end{array}\\right]^T\n",
        "\\end{align*}\n",
        "\n",
        "\n",
        "به علاوه چون\n",
        "$ V $\n",
        "متعامد است پس\n",
        "$ V^T = V^{-1} $\n",
        "و لذا\n",
        "(1)\n",
        "را می‌توان نوشت\n",
        "$$\n",
        "A=U \\Sigma V^{-1}, (\\text{ماتریس قطری است}\\Sigma)\n",
        "$$\n",
        "که شباهت فراونی با رابطه‌ی قطری شدنی\n",
        "$ A=PDP^{-1} $\n",
        "دارد. به تجزیه‌ی\n",
        "(1)\n",
        "**تجزیه مقادیر تکین (Singular Value Decomposition)**\n",
        "یا به اختصار تجزیه\n",
        "SVD\n",
        "ماتریس \n",
        "$ A $\n",
        "می‌گوییم که صورت رسمی در ادامه تعریف می‌شود.\n",
        "\n",
        "**قضیه)**\n",
        "فرض کنید\n",
        "$ A $\n",
        "یک ماتریس حقیقی\n",
        "$ m \\times n $\n",
        "باشد، آنگاه ماتریس‌های متعامد\n",
        "$ U $\n",
        "و\n",
        "$ V $\n",
        "وجود دارند به قسمی که\n",
        "$$\n",
        "U^T A V = \\begin{bmatrix}\n",
        "  \\Sigma_1 & 0 \\\\\n",
        "  0 & 0\n",
        "\\end{bmatrix} = \\Sigma\n",
        "$$\n",
        "که در آن\n",
        "$ \\Sigma_1 $\n",
        "یک ماتریس قطری نامنفرد است. عناصر قطری\n",
        "$ \\Sigma $\n",
        "همگی نامنفی هستند و می‌توانند به ترتیب ناصعودی مرتب شوند. تعداد عناصر قطری مخالف صفر\n",
        "$ \\Sigma $\n",
        "برابر رتبه ماتریس\n",
        "$ A $\n",
        "است.\n",
        "\n",
        "**تعریف)**\n",
        "عناصر قطری ماتریس\n",
        "$ \\Sigma $\n",
        "مقادیر تکین ماتریس\n",
        "$ A $\n",
        "نامیده می‌شوند. اعداد\n",
        "$ \\sigma_{1},\\sigma_{2},\\dots,\\sigma_r $\n",
        "مقادیر تکین مثبت\n",
        "$ A $\n",
        "هستند.\n",
        "\n",
        "**تعریف)**\n",
        "ستون‌های\n",
        "$ U $\n",
        "بردارهای تکین چپ و ستون‌های\n",
        "$ V $\n",
        "بردارهای تکین راست نامیده می‌شوند.\n",
        "\n",
        "\n",
        "**توجه)**\n",
        "به تعداد\n",
        "$ k= \\min (m,n) $\n",
        "مقدار تکین برای\n",
        "$ A $\n",
        "وجود دارد. فرض کنید رتبه\n",
        "$ A $\n",
        "برابر\n",
        "$ r $\n",
        "باشد. پس\n",
        "$ r $\n",
        "مقدار تکین مثبت وجود دارد. این‌ها ریشه‌های دوم مثبت مقادیر ویژه مخالف صفر\n",
        "$ A^T A $\n",
        "یا\n",
        "$ AA^T $\n",
        "هستند. بقیه\n",
        "$ (k-r) $\n",
        "مقدار تکین، اگر\n",
        "$ r <k $،\n",
        "صفر هستند. بنابراین مقادیر تکین منحصر به فرد هستند ولیکن بردارهای تکین منحصر به فرد نیستند.\t\t\n",
        "\n",
        "**مثال)**\n",
        "مقادیر تکین ماتریس داده شده را حساب کنید.\n",
        "\\begin{align*}\n",
        "A=\\begin{bmatrix}\n",
        "2 & -2 &1\\\\\n",
        "2 & 1 & 3\n",
        "\\end{bmatrix},\\qquad m=2, n=3 \n",
        "\\end{align*}\n",
        "\n",
        "**حل)**\n",
        "چون\n",
        "$ A^T A $\n",
        "ماتریس\n",
        "$ 3 \\times 3 $\n",
        "و\n",
        "$ A A^T $\n",
        "ماتریس\n",
        "$ 2 \\times 2 $\n",
        "است. پس منطقی است که جذر مقادیر ویژه‌ی ماتریس\n",
        "$ A A^T $\n",
        "را بیابیم.\n",
        "$$\n",
        "A A^{\\top}=\\left[\\begin{array}{cc}\n",
        "  9 & 5 \\\\\n",
        "  5 & 14\n",
        "\\end{array}\\right] \\rightarrow P(\\lambda)=\\lambda^{2}-23 \\lambda+101\n",
        "$$\n",
        "ریشه‌های چندجمله‌ای فوق به صورت\n",
        "$$\n",
        "\\lambda_1 = 17.0902,\\quad \\lambda_2 = 5.9098\n",
        "$$\n",
        "هستند و از آنجا\n",
        "\\begin{align*}\n",
        "  \\sigma_{1} = \\sqrt{\\lambda_1} = \\sqrt{17.0902}=4.1340 \\\\\n",
        "  \\sigma_{2} = \\sqrt{\\lambda_2} = \\sqrt{5.9098}=2.4310\n",
        "\\end{align*}\n",
        "مقادیر تکین\n",
        "$ A $\n",
        "هستند. توجه کنید مطابق قضیه تعداد مقادیر تکین مثبت برابر رتبه\n",
        "$ A $\n",
        "است پس در اینجا رتبه\n",
        "$ A $\n",
        "برابر \n",
        "$ 2 $\n",
        "خواهد بود.\n",
        "\n",
        "**قضیه)**\n",
        "فرض کنید تجزیه \n",
        "$SVD$\n",
        "ماتریس\n",
        "$A\\in \\mathbb{R}^{m\\times n}$\n",
        "به صورت \n",
        "$A=U\\Sigma V^T$\n",
        "باشد آنگاه \n",
        "$$AA^TU=U\\tilde{\\Sigma},\\qquad A^TAV=V\\hat{\\Sigma}$$\n",
        "که در آن\n",
        "$\\tilde{\\Sigma}$\n",
        "ماتریس\n",
        "$m\\times m$\n",
        "است به طوری که\n",
        "$$\\tilde{\\Sigma}=\\begin{bmatrix}\n",
        "  \\tilde{\\Sigma}_1&0\\\\0&0\n",
        "\\end{bmatrix}$$\n",
        "و \n",
        "$\\hat{\\Sigma}$\n",
        "ماتریسی\n",
        "$n\\times n$\n",
        "است به قسمی که\n",
        "$$\\hat{\\Sigma}=\\begin{bmatrix}\n",
        "  \\tilde{\\Sigma}_1&0\\\\0&0\n",
        "\\end{bmatrix}$$\n",
        "و \n",
        "$\\tilde{\\Sigma}_1$\n",
        "ماتریسی قطری\n",
        "$\\tilde{\\Sigma}_1=diag(\\sigma^2_1\\sigma^2_2,\\dots,\\sigma^2_s)$\n",
        "با \n",
        "$s=min\\{m,n\\}$\n",
        "است.\n",
        "\n",
        "**نحوه‌ی محاسبه‌ی تجزیه SVD به صورت زیر می‌باشد :**\n",
        "\n",
        "1. \n",
        "ماتریس‌های \n",
        "$AA^T$\n",
        "و\n",
        "$A^TA$\n",
        "را بسازید.\n",
        "<br>\n",
        "2.  جفت ویژه‌ی این دو ماتریس را محاسبه کنید و ماتریس \n",
        "$\\Sigma$\n",
        "را تشکیل دهید.\n",
        "<br>\n",
        "3.  بردارهای ویژه \n",
        "$AA^T$\n",
        "را به عنوان ستون‌های \n",
        "$U$\n",
        "و بردارهای ویژه \n",
        "$A^TA$\n",
        "را به عنوان ستون‌های\n",
        "$V$\n",
        "در نظر بگیرید.\n",
        "<br>\n",
        "اکنون تجزیه \n",
        "$SVD$\n",
        "ماتریس\n",
        "$A$\n",
        "کامل شده است.\n",
        "\n",
        "**مثال)**\n",
        "تجزیه \n",
        "$SVD$\n",
        "ماتریس داده شده را به دست آورید\n",
        "$$A=\\begin{bmatrix}\n",
        "  1&-1\\\\\n",
        "  2&1\\\\\n",
        "  0&3\n",
        "\\end{bmatrix},\\quad m=3,n=2$$\n",
        "\n",
        "**حل)**\n",
        "گام1: ابتدا ماتریس‌های \n",
        "$AA^T$\n",
        "و \n",
        "$A^TA$\n",
        "را تشکیل می‌دهیم\n",
        "$$AA^T=\\begin{bmatrix}\n",
        "2&1&-3\\\\\n",
        "1&5&3\\\\\n",
        "-3&3&9\n",
        "\\end{bmatrix},\\quad\n",
        "A^TA=\\begin{bmatrix}\n",
        "5&1\\\\\n",
        "1&11\\\\\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "گام2: جفت ویژه‌های\n",
        "$A^TA$\n",
        "چنین اند:\n",
        "$$\\lambda_1=11/1623\\to\n",
        "v_1=\\begin{bmatrix}\n",
        "0/1602\\\\\n",
        "0/9871\n",
        "\\end{bmatrix},\\quad\n",
        "\\lambda_2=4/8377\\to\n",
        "v_2=\\begin{bmatrix}\n",
        "-0/9871\\\\\n",
        "0/1602\n",
        "\\end{bmatrix}$$\n",
        "جفت ویژه‌های \n",
        "$AA^T$\n",
        "چنین اند:\n",
        "$$\\lambda_1=11/1623\\to\n",
        "u_1=\\begin{bmatrix}\n",
        "-0/2475\\\\\n",
        "0/3913\\\\\n",
        "0/8863\n",
        "\\end{bmatrix},\\quad\n",
        "\\lambda_2=4/8377\\to\n",
        "u_2=\\begin{bmatrix}\n",
        "-0/2475\\\\\n",
        "0/3913\\\\\n",
        "0/8863\n",
        "\\end{bmatrix}$$\n",
        "$$\\lambda_3=0\\to u_3=\\begin{bmatrix}\n",
        "-0/8165\\\\\n",
        "0/4082\\\\\n",
        "-0/4082\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "بعلاوه 2 مقدار تکین به صورت زیر موجود است:\n",
        "$$\\sigma_1=\\sqrt{\\lambda_1}=\\sqrt{11/1623}=3/3410,\\quad\n",
        "\\sigma_2=\\sqrt{\\lambda_2}=\\sqrt{4/8377}=2/1995$$\n",
        "پس\n",
        "$r=2$\n",
        "و\n",
        "لذا \n",
        "$\\Sigma_1$\n",
        "ماتریسی\n",
        "$r\\times r=2\\times 2$\n",
        "است\n",
        "$$\\Sigma_1=\\begin{bmatrix}\n",
        "\\sigma_1&0\\\\\n",
        "0&\\sigma_2\n",
        "\\end{bmatrix}=\\begin{bmatrix}\n",
        "3/3410&0\\\\\n",
        "0&2/1995\n",
        "\\end{bmatrix}$$\n",
        "در نتیجه ماتریس\n",
        "$\\Sigma$\n",
        "،\n",
        "$3\\times 2$\n",
        "به صورت زیر است\n",
        "$$\\Sigma=\\begin{bmatrix}\n",
        "\\Sigma_1&0\\\\\n",
        "0&0\n",
        "\\end{bmatrix}=\\begin{bmatrix}\n",
        "3/3410&0\\\\0&2/1995\\\\\n",
        "0&0\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "گام3: با توجه به بردارهای ویژه‌ی ماتریس‌های \n",
        "$AA^T$\n",
        "و\n",
        "$A^TA$\n",
        "ماتریس‌های \n",
        "$U$\n",
        "و\n",
        "$V$\n",
        "را به صورت زیر تشکیل می‌دهیم\n",
        "$$U=[u_1,u_2,u_3]=\\begin{bmatrix}\n",
        "  -0/2475&0/5216&-0/8165\\\\\n",
        "  0/3913&0/8247&0/4082\\\\\n",
        "  0/8863&-0/2185&-0/4082\n",
        "\\end{bmatrix}$$\n",
        "$$V=[v_1,v_2]=\\begin{bmatrix}\n",
        "  0/1602&-0/9871\\\\\n",
        "  0/9871&0/1602\n",
        "\\end{bmatrix}$$\n",
        "در نتیجه\n",
        "$$A=\\begin{bmatrix}\n",
        "  1&-1\\\\\n",
        "  2&1\\\\\n",
        "  0&3\n",
        "\\end{bmatrix}=U\\Sigma V^T$$\n",
        "\n",
        "$$=\\begin{bmatrix}\n",
        "-0/2475&0/5216&-0/8165\\\\\n",
        "0/3913&0/8247&0/4082\\\\\n",
        "0/8863&-0/2185&-0/4082\n",
        "\\end{bmatrix}\\begin{bmatrix}\n",
        "3/3410&0\\\\0&2/1995\\\\\n",
        "0&0\n",
        "\\end{bmatrix}\\begin{bmatrix}\n",
        "0/1602&-0/9871\\\\\n",
        "0/9871&0/1602\n",
        "\\end{bmatrix}$$\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "NzoJgUeRqYAa"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "<font face=\"XB Zar\" size=4><div dir=rtl>\n",
        "<font color=\"red\" size=5>منابع</font>\n",
        "<br>\n",
        "\n",
        "1. جزوه جبرخطی عددی دکتر دهقان، دانشکده ریاضی و علوم کامپیوتر، دانشگاه صنعتی امیرکبیر\n",
        "2. [فصل دوم کتاب Dive Into Deep Learning](https://d2l.ai/chapter_preliminaries/linear-algebra.html)\n",
        "3. [جزوه ریاضیات برای یادگیری ماشین دانشگاه Berkely](https://gwthomas.github.io/docs/math4ml.pdf)\n",
        "\n",
        "\n",
        "\n",
        "</div></font>"
      ],
      "metadata": {
        "id": "erdcTaC4uvvy"
      }
    }
  ]
}
